import { createRouter, createWebHistory } from 'vue-router'

// 统一路由配置：集中管理所有页面路由，便于维护与按需扩展
const routes = [
  // 首页（带首页英雄区标记，供 UI 使用）
  { path: '/', component: () => import('../pages/Home.vue'), meta: { homeHero: true } },
  // 商品列表
  { path: '/products', component: () => import('../pages/Products.vue') },
  // 商品详情（动态路由参数 id）
  { path: '/product/:id', component: () => import('../pages/ProductDetail.vue') },
  // 购物车
  { path: '/cart', component: () => import('../pages/Cart.vue') },
  // 结算页（需要登录）
  { path: '/checkout', component: () => import('../pages/Checkout.vue'), meta: { requiresAuth: true } },
  // 登录页
  { path: '/login', component: () => import('../pages/Login.vue') },
  // 注册页（保持结构简单清晰，Vue2风格组件）
  { path: '/register', component: () => import('../pages/Register.vue') },
  // 账户中心（需要登录）
  { path: '/account', component: () => import('../pages/Account.vue'), meta: { requiresAuth: true } },
]

const router = createRouter({
  // 使用 Hash History 与现有部署一致，避免后端路径配置问题
  history: createWebHistory(),
  routes,
  // 统一滚动行为：锚点平滑滚动，否则回到顶部
  scrollBehavior(to) {
    if (to.hash) {
      return { el: to.hash, behavior: 'smooth' }
    }
    return { top: 0 }
  }
})
// 登录鉴权守卫：仅检查 sessionStorage 的 token
router.beforeEach((to) => {
  const token = sessionStorage.getItem('token')
  if (to.meta?.requiresAuth && !token) {
    return { path: '/login', query: { redirect: to.fullPath } }
  }
  return true
})

export default router